#include "Game.h"
#include "SceneManager.h"

SceneManager::SceneManager(void)
	{
	//g->getEventos()->addListener(CARGANDO_ESCENA,this);
	}



void SceneManager::pushScene( IEscena *escena )
	{
		g->getLog()->add_tag("CargandoEscena",escena->getNombre());
		escenas.push(escena);
		
	}

void SceneManager::popScene()
	{
		
		g->getLog()->add_tag("DescargandoEscena",escenas.top()->getNombre());
		escenas.pop();
	}

void SceneManager::update( float speedFactor )
	{
		
		if (quedanEscenas()){
			if (!escenas.top()->isLoaded())
				escenas.top()->load();	
			escenas.top()->update(speedFactor);
		}
	}

void SceneManager::render()
	{

		if (quedanEscenas()){
			if (!escenas.top()->isLoaded())
				escenas.top()->load();
			escenas.top()->render();
		}
	}
SceneManager::~SceneManager(void)
	{
	}

bool SceneManager::onEvent( Event *e )
	{
		pushScene(((eventoCargarEscena*)(e->datos))->escena);
		return true;
	}